(function ($) {
 $.fn.sidebarMenu = function (options) {
  options = $.extend({}, $.fn.sidebarMenu.defaults, options || {});
  var target = $(this);
  target.addClass('nav');
  target.addClass('nav-list');
  if (options.data) {
   init(target, options.data);
  }
  else {
   if (!options.url) return;
   $.getJSON(options.url, options.param, function (data) {
    init(target, data);
   });
  }
  var url = window.location.pathname;
  function init(target, data) {
   $.each(data, function (i, item) {
    var li = $('<li id=\'menu_li_'+item.id+'\'></li>');
    var a = $('<a></a>');
    var icon = $('<i></i>');
    icon.addClass(item.icon);
    var text = $('<span></span>');
    text.addClass('link-title').text(" "+item.text);
    a.append(icon);
    a.append(text);

    if (item.menus&&item.menus.length>0) {
     a.attr('href', 'javascript:void(0)');
     a.attr("data-toggle","collapse");
     a.attr("data-target","#d"+item.id);
     a.addClass("iframeUrl");
     li.attr("data-p","1");
     a.attr("data-title",item.text);
     a.attr("data-url",item.url);
     a.attr("data-level",item.level);
     a.attr("data-id",item.id);
     a.attr("data-pid",item.pid);
     var arrow = $('<span></span>');
     arrow.addClass('fa arrow');
     a.append(arrow);
     li.css("margin-left",item.level*5);
     li.append(a);
     var menus = $('<ul></ul>');
     menus.attr("id","d"+item.id);
     menus.addClass('collapse');
     init(menus, item.menus);
     li.append(menus);
    }
    else {
      if(item.close == undefined) item.close = true;
        a.attr('href', 'javascript:void(0)');
        a.attr("data-title",item.text);
        a.attr("data-url",item.url);
        a.attr("data-level",item.level);
        a.attr("data-id",item.id);
        a.attr("data-pid",item.pid);
        a.addClass("iframeUrl");
        li.css("margin-left",item.level*5);
        li.append(a);
    }
    target.append(li);
   });
  }
 }
 
 $.fn.sidebarMenu.defaults = {
  url: null,
  param: null,
  data: null
 };
})(jQuery);